Bagaimana cara mengubah direktori di terminal, dan mengetahui direktori tempat saya berada?

15

Saya mengikuti arahan @ Bantuan komunitas Ubuntu ; Namun, saya masih bingung tentang beberapa hal. Saya meneliti & menemukan posting ini: menggunakan terminal untuk mengubah direktori , tetapi itu di atas saya & saya masih tidak yakin bagaimana cara melakukannya. Saya baru & perlu arahan ekstra jadi tetap dengan saya! ;-) Berikut ini adalah skrip dari terminal saya:

christy@ubuntu:~$ ls
Desktop    examples.desktop     install-tl-unx.tar.gz  Pictures  Templates
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
Documents  install-pkgs.log     libnautilus-gksu.so    Projects  Videos
christy@ubuntu:~$ cd/
bash: cd/: No such file or directory

Bagaimana cara mengetahui apa yang ada di direktori mana dan bagaimana cara menavigasi direktori. Saya tahu saya harus meninggalkan sesuatu yang sederhana.

pengguna74713
sumber
4
Anda selalu membutuhkan spasi setelah perintah seperti "cd". Perintah Anda akan berfungsi jika Anda memasukkan "cd /", dan akan pindah ke direktori root.
Marty Fried
Fantastis, Marty! Bantuan Anda sangat kami hargai. ;-)
user74713

Jawaban:

19

Dalam sesi Anda lsmenampilkan konten direktori saat ini (tetapi tidak file yang tersembunyi dimulai dengan titik di nama file). Anda menavigasi ke direktori lain dengan mengetik cd dirname. Di sini Anda harus mengganti "dirname" dengan nama direktori yang ingin Anda ubah. Biasanya Anda mulai dengan direktori home Anda sebagai direktori kerja saat ini. Dalam kasus Anda itu kemungkinan besar /home/christy. Jika lsmemperlihatkan kepada Anda direktori yang disebut "Templat" Anda dapat berubah menjadi "Templat" (= jadikan itu direktori kerja Anda saat ini) dengan mengetikkan (ingat spasi) perintah:

cd Templates

Anda akan mengubah direktori kerja Anda saat ini menjadi "Templat" atau mencetak "Tidak ada file atau direktori", jika direktori nama itu tidak ada dalam direcotry Anda saat ini. Mengetik pwdakan selalu memberi Anda tambalan lengkap ke direktori kerja Anda saat ini termasuk orang tua.

Anda dapat memberikan argumen opsional untuk setiap perintah. Untuk cdstring "Templat" adalah argumen opsional. Jika Anda mengetik ls -amisalnya, lsperintah itu akan mencetak file tersembunyi juga. Atau dengan ls Templatesitu akan mencetak konten direktori Tempaltes alih-alih Anda konten dir saat ini bekerja. Argumen harus dipisahkan oleh setidaknya satu spasi dari nama perintah dan dari satu sama lain. Kurangnya ruang antara keduanya adalah alasan perintah Anda tidak berfungsi.

Karena karakter ruang memiliki makna khusus, Anda perlu mengutip atau menghindarinya, jika itu bagian dari argumen. Jadi jika misalnya Anda ingin mengubah direktori kerja Anda saat ini menjadi "File Sumber" Anda perlu mengetik salah satu dari perintah ini:

cd Source\ Files
cd "Source Files"

Baris atas "melarikan diri" sedangkan garis bawah "dikutip".

Jika Anda ingin mempelajari lebih lanjut, panduan yang lebih baik untuk Anda adalah: Pengantar Linux ( pdf ) ( html )


Edit :

Oke sekarang, maaf saya tidak melihat tautan Anda di sana. Posting Anda agak menyesatkan, sekarang saya pikir saya mengerti:

Jadi, Anda ingin menginstal tex-live dari arsip sumber yang tertaut dalam panduan "Memulai" yang Anda pasang . Untuk melakukan itu, Anda harus terlebih dahulu menghapus instalasi tex-live yang sudah ada. Anda melakukannya dengan membuka terminal dengan melakukan ini:

christy@ubuntu:~$ pwd 
/home/christy # <---- This is the directory you are working in
christy@ubuntu:~$ sudo apt-get remove texlive-*
[sudo] password for christy: 

Pada titik ini Anda harus memasukkan kata sandi Anda dan akan diberi beberapa pesan membosankan, yang akan saya hilangkan di sini. Maka Anda harus mengunduh arsip bernama install-tl-unx.tar.gz(Anda sudah melakukan itu dan tidak perlu mengunduhnya lagi, tetapi saya menunjukkan kepada Anda bagaimana melakukannya tanpa kecuali untuk berjaga-jaga):

christy@ubuntu:~$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

--2012-07-09 15:08:23--  http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
Resolving mirror.ctan.org... 80.237.159.15
Connecting to mirror.ctan.org|80.237.159.15|:80... connected.
HTTP request sent, awaiting response... 302 Found
# ... some more stuff like this ...
Saving to: `install-tl-unx.tar.gz'

100%[=====================================>] 2,530,831   --.-K/s   in 0.1s    

2012-07-09 15:08:23 (17.3 MB/s) - `install-tl-unx.tar.gz' saved [2530831/2530831]

Sekarang Anda telah mengunduh arsip, Anda dapat membukanya

christy@ubuntu:~$ tar xvf install-tl-unx.tar.gz
install-tl-20120701/
install-tl-20120701/readme-txt.dir/
install-tl-20120701/readme-txt.dir/README.RU-cp1251
# ... bla bla skipping over some more messages like this ...
install-tl-20120701/readme-html.dir/readme.sr.html
install-tl-20120701/readme-html.dir/readme.ru.html
install-tl-20120701/readme-html.dir/readme.de.html

Sekarang setelah Anda membuka arsip, Anda dapat mengubah ke direktori yang telah dibongkar.

christy@ubunut:~$ ls | grep install-tl-  # <---- with this line you find out the number
install-tl-20120701                      # <---- in this case "20120701"
install-tl-unx.tar.gz                    # <---- if just this is present with no number you did something wrong
christy@ubuntu:~$ cd install-tl-20120701 # <---- enter this number here
christy@ubuntu:~$ pwd
/home/christy/install-tl-20120701/       # <--- this is your new working directory

Angka "20120701" adalah stempel waktu yang menunjukkan versi tex-live yang Anda miliki. Nomor ini mungkin berbeda untuk Anda, tetapi perintah itu ls | grep install-t1-akan memberi tahu Anda apa yang harus digunakan. Jika semua ini berhasil, Anda dapat menjalankan skrip instalasi dari sini:

christy@ubuntu:~$ sudo ./install-tl
[sudo] password for jan: 
Loading http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet/tlpkg/texlive.tlpdb
Installing TeX Live 2012 from: http://ftp.univie.ac.at/packages/tex/systems/texlive/tlnet
Platform: x86_64-linux => 'x86_64 with GNU/Linux'
# ... bla bla and so on bla ...
Actions:
  <I> start installation to hard disk
  <H> help
  <Q> quit

Enter command: I
# ... and so on ...

Dari sini, jawab saja pertanyaan yang diajukan oleh skrip instalasi dan Anda akan baik-baik saja.

membingungkan
sumber
@ con-f-use: Info hebat! Sekarang, merujuk pada skrip terminal di postingan asli saya: Direktori apa itu instal install-tl-unx.tar.gz dan bagaimana cara menjalankannya? Saya kenal dengan perintah instal, tapi saya rasa saya perlu menginstal paket? Perintah untuk membongkar tarball adalah @ ubuntu-manual.org/getinvolved/editors . Jika Anda dapat mengarahkan saya ke arah yang benar ... Terima kasih banyak; Anda sudah sangat informatif.
user74713
Tidak masalah. Saya tidak yakin, apa sebenarnya tujuan Anda pada akhirnya, jadi agak sulit untuk membantu Anda tanpa lebih banyak informasi. Tampaknya Anda mencoba menginstal TeX-Live dari arsip 'install-tl-unx.tar.gz'. Untuk melakukan itu, Anda harus terlebih dahulu membongkar arsip, daripada menjalankan skrip instal. Saya akan mengedit posting saya di atas dengan beberapa instruksi untuk melakukannya segera.
gunakan con-f
10

Ringkasan Eksekutif (TL; DR)

  • Gunakan pwduntuk mengetahui di mana Anda berada (atau melihat di antara :dan $di prompt Anda).
  • Gunakan cduntuk mengubah direktori di tempat lain. Berbeda dengan di Windows, cdharus selalu diikuti oleh spasi; perintah suka cd/dan cd..tidak akan bekerja, tetapi cd /dan cd ..akan.

Mengetahui Di Mana Anda Berada

Cara 1: Jalankan pwd.

Direktori tempat Anda berada saat ini khusus untuk shell (dan lebih umum, khusus aplikasi). Anda bisa menjalankan satu shell di mana Anda berada di satu direktori, dan shell lain di mana Anda berada di direktori lain.

Untuk mengetahui direktori tempat Anda berada saat ini, jalankan:

pwd

Misalnya (dari shell yang kebetulan saya buka sekarang, di komputer saya):

ek@Kip:~$ pwd
/home/ek

Ini memberitahu saya bahwa saya ada di direktori /home/ek. /homeadalah (agak membingungkan) direktori yang berisi direktori home pengguna manusia (itu sendiri bukan direktori home user). Pengguna manusia usernamememiliki direktori home ./home/username

The rootpengguna tidak memiliki direktori home di /home. Sebaliknya, rootdirektori home adalah /root. Ini tidak harus bingung dengan direktori root , yaitu /.

Cara 2: Periksa prompt Anda.

Konfigurasi default untuk prompt Anda adalah bahwa ia memberi tahu Anda direktori apa yang sedang Anda masuki. Permintaan Anda adalah teks yang muncul untuk memberi tahu Anda bahwa shell siap menerima perintah.

Dalam contoh yang Anda tunjukkan pada kami dalam pertanyaan Anda, pertanyaan Anda adalah:

christy@ubuntu:~$

christyadalah nama pengguna kamu. The @karakter memisahkannya dari ubuntu, nama host komputer Anda. (Jika Anda menjalankan live CD, nama hostnya adalah ubuntu, dan beberapa orang memilih itu sebagai nama komputer mereka selama instalasi juga.)

The :karakter memisahkannya dari nama direktori anda sedang berada. Dalam hal ini, yang diwakili oleh ~. ~adalah singkatan untuk direktori home Anda. Ketika Anda tidak berada di direktori home Anda, Anda akan melihat nama direktori lengkap. Sebagai contoh:

ek@Kip:~$ cd /var/log
ek@Kip:/var/log$

(Untuk menyelesaikan apa artinya setiap bagian dari prompt: Untuk prompt yang mengikuti konvensi ini, baik a $atau #karakter muncul. $, Seperti dalam kasus ini, berarti itu adalah shell pengguna normal. #Karakter akan berarti itu adalah rootshell.)

Mengubah Di Mana Anda Berada

Mengapa perintah "cd" Anda tidak berfungsi.

Untuk mengubah direktori, gunakan cdperintah.

Kamu berlari cd/. Ini tidak berfungsi karena Anda sebenarnya tidak menjalankan cdperintah. Di Ubuntu dan sistem operasi mirip Unix lainnya (sebenarnya, dalam shell bergaya Unix seperti bash, shell yang Anda gunakan), nama perintah dianggap berakhir hanya pada spasi atau di akhir baris.

Jadi tidak seperti di Command Prompt di Windows (di mana cd\ditafsirkan sama dengan cd \dan cd..ditafsirkan sama dengan cd ..), di bash(shell yang Anda gunakan di Ubuntu), cd/bukan perintah yang valid. Anda harus menggunakan cd /.

cd/berarti "entri dalam direktori saat ini yang namanya cddan yang juga merupakan direktori." Apakah atau tidak subdirektori seperti itu ada, tidak dapat dijalankan sebagai perintah, sehingga baik cara Anda akan mendapatkan error (meskipun apa kesalahan yang Anda dapatkan akan berbeda):

ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory

Pindah ke Direktori Rumah Anda

Untuk masuk ke direktori home Anda, jalankan cddengan sendirinya tanpa argumen:

cd

Beberapa orang lebih suka memberi nama direktori home mereka secara eksplisit. Anda dapat menggunakan nama lengkapnya, atau

cd ~

Tapi cddengan sendirinya sudah cukup.

Memindahkan Satu Direktori

Untuk mengubah direktori ke direktori induk direktori saat ini (yaitu, direktori yang berisi itu), gunakan:

cd ..

..mewakili direktori induk direktori saat ini. Jika Anda berada di direktori root ( /), ada pengecualian: ..hanya mewakili /. Jadi menjalankan cd ..pindah satu direktori ketika dijalankan di mana saja tetapi /; saat dijalankan /, Anda tetap di /.

Setiap direktori berisi ..entri. Mereka juga semua berisi .entri yang merujuk ke direktori saat itu sendiri. Ini tidak terlalu berjalan cd .meskipun. Anda selalu tinggal di mana Anda berada.

Jalan Mutlak dan Relatif

Jika Anda cdke sesuatu yang tidak dimulai dengan /, maka ia mencoba untuk pergi ke direktori tersebut di dalam direktori saat ini .

Misalnya, jika Anda berlari

cd var/log

Maka ia akan mencoba masuk ke varsubdirektori di mana Anda berada saat ini, dan ke dalam logsubdirektori itu. Kecuali keduanya ada, dan di tempat-tempat itu, cdperintah itu akan gagal (dan Anda akan tetap di tempat Anda semula).

Jika Anda ingin pergi ke logsubdirektori varsubdirektori direktori root , jalankan ini sebagai gantinya:

cd /var/log

Hanya jika Anda saat /ini cd var/logsetara dengan cd /var/log.

Jalur yang dimulai dengan /mutlak. Cara penyelesaiannya tidak bergantung pada di mana Anda berada saat ini.

Jalan ~itu mutlak juga, karena itu (pada dasarnya) adalah singkatan $HOME. HOMEadalah variabel lingkungan , dan ekspresi $HOMEdiperluas ke jalur penuh, absolut dari direktori home pengguna saat ini.

~notasi juga dapat digunakan untuk mewakili direktori home pengguna lain . Jika Anda menulis , ini merupakan direktori home.~usernameusername

Kembali ke Tempat Anda Sebelumnya

Direktori tempat Anda berada saat ini disimpan dalam PWDvariabel lingkungan. Direktori terakhir Anda berada disimpan dalam OLDPWDvariabel lingkungan. Anda dapat melihat OLDPWDdengan cara yang sama Anda akan melihat variabel lingkungan apa pun:

echo $OLDPWD

Karena informasi ini disimpan, cddapat memiliki cara khusus, cepat dan mudah untuk kembali ke tempat Anda sebelumnya. Seperti yang dikatakan pst007x , untuk pergi ke direktori terakhir Anda, jalankan:

cd -

Jika tidak pernah ada direktori sebelumnya Anda berada di shell itu , maka OLDPWDvariabel lingkungan tidak akan ditetapkan, dan mencoba menjalankan cd -akan menghasilkan kesalahan (dan Anda akan tetap di tempat Anda berada):

ek@Kip:~$ cd -
bash: cd: OLDPWD not set

Mengubah Di Mana Anda Seperti Seorang Bos

pushddan popd: Stack Direktori

Bayangkan setumpuk nama direktori. Dengan tumpukan , maksud saya sesuatu di mana ketika Anda menambahkan sesuatu di bagian atas, dan Anda hanya dapat menghapus satu hal pada suatu waktu, dan hal yang Anda hapus selalu apa yang saat ini di atas.

Anda dapat mendorong direktori mana saja dirke tumpukan dengan menjalankan:

pushd dir

Jika Anda ingin mendorong direktori saat ini ke atas tumpukan, Anda dapat menggunakan .(yang, seperti dijelaskan di atas, selalu mewakili direktori saat ini):

pushd .

Kemudian Anda dapat pergi tentang bisnis Anda, mengubah direktori sebanyak yang Anda suka. Saat Anda ingin kembali ke direktori terakhir yang Anda dorong ke tumpukan pushd, jalankan:

popd

Ini pergi ke direktori tersebut, dan juga muncul itu dari tumpukan. Sekarang tumpukan lebih pendek satu direktori. Jika itu adalah satu-satunya direktori pada stack, maka stack sekarang kosong.

Anda dapat memiliki tumpukan dengan ukuran lebih besar dari 1. Artinya, Anda dapat menggunakan pushdperintah terpisah untuk mendorong beberapa direktori ke tumpukan. Setiap popdperintah selanjutnya akan pergi ke (dan pop off, yaitu, menghapus dari, tumpukan ) direktori yang paling baru didorong belum muncul.

Ini sebuah contoh:

ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$

pushddan popddigunakan jauh lebih jarang daripada cd. Mereka juga memiliki kegunaan lain, bahkan lebih maju. Jalankan help pushddan help popduntuk detail.

Belajar Lebih Banyak dan Mengakses Dokumentasi

cddan pwdmemiliki kegunaan yang lebih maju juga. Untuk mempelajarinya, jalankan help cddan man pwd.

helpadalah untuk builtin shell . manadalah untuk perintah mandiri - perintah yang dijalankan sebagai proses terpisah dan ada sebagai executable terpisah. The typeperintah mengungkapkan jika perintah adalah builtin shell atau tidak, dan jika tidak, dimana program itu berjalan berada. Misalnya, Anda dapat menjalankan type help, type typeatau type man.

Eliah Kagan
sumber
5

Sebagai contoh:

cd Desktop/ Pergi ke direktori Desktop jika Anda berada di direktori home Anda.

cd - Kembali ke direktori sebelumnya.

cd / Membawa Anda ke direktori root.

cd ~/Desktop Akan membawa Anda ke Direktori Desktop di mana pun Anda berada.

pst007x
sumber